/**
 * 第6章 用流收集数据
 * 代码清单-p1ch06a-116页a：用指令式风格对交易按照货币分组 {@link top.kaoshanji.p1ch06a.GroupingTransactions}
 * 代码清单-p1ch06a-116页b：用函数式风格对交易按照货币分组 {@link top.kaoshanji.p1ch06a.GroupingTransactions}
 * 代码清单-p1ch06a-121页a：数一数菜单里有多少种菜 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-121页b：菜单中热量最高的菜 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-122页a：菜单列表的总热量 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-123页a：菜单列表的平均热量 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-123页b：菜单列表的热量总和、平均值、最大值和最小值 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-123页c：菜单名称连接起来 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-124页a：菜单名称连接起来，有分隔符的版本 {@link top.kaoshanji.p1ch06a.Summarizing}
 * 代码清单-p1ch06a-127页a：把菜单中的菜按照类型进行分类 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-128页a：把菜单中的菜按照热量进行分类 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-129页a：只按照菜肴的热量进行过滤 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-129页b：将每道菜肴的分类添加到它们各自的菜名中 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-130页a：提取出每组菜肴对应的标签 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-130页b：多级分组 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-131页a：数一数菜单中每类菜有多少个 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-132页a：修改前面查找菜单中热量最高的菜肴的收集器 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-132页b：查找每个子组中热量最高的Dish {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-134页a：每组菜肴热量的总和 {@link top.kaoshanji.p1ch06a.Grouping}
 * 代码清单-p1ch06a-135页a：把菜单按照素食和非素食分开 {@link top.kaoshanji.p1ch06a.Partitioning}
 * 代码清单-p1ch06a-135页b：把菜单按照素食分类后继续按类型分组 {@link top.kaoshanji.p1ch06a.Partitioning}
 * 代码清单-p1ch06a-135页c：把菜单按照素食分类后筛选其中热量最高的菜 {@link top.kaoshanji.p1ch06a.Partitioning}
 * author kaoshanji
 * ^_^
 * create time 2025/2/11 18:29
 */
package top.kaoshanji.p1ch06a;